package com.lvt.example.thinking.in.spring.questions.L24.resttemplate;

import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.Map;

/**
 * desc：class
 *
 * @author LT
 * @date 2022/10/25
 */
public class Test {

    /**
     * 使用到 JSON 的关键之处在于其中的关键调用 RestTemplate.HttpEntityRequestCallback#doWithRequest
     */
    public static void main(String[] args) {

        RestTemplate template = new RestTemplate();
        //错误：
        //Map<String, Object> paramMap = new HashMap<String, Object>();
        //paramMap.put("para1", "001");
        //paramMap.put("para2", "002");

        //修正代码：表单数据最终使用下面的代码进行了编码，参考 FormHttpMessageConverter#write：
        MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<String, Object>();
        paramMap.add("para1", "001");
        paramMap.add("para2", "002");

        String url = "http://localhost:8080/hi";
        String result = template.postForObject(url, paramMap, String.class);
        System.out.println(result);
    }
}
